{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "hide_input": false
   },
   "source": [
    "## Outlook\n",
    "### Approaching a machine learning problem\n",
    "### Humans in the loop"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### From prototype to production"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Testing production systems"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Building your own estimator"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.base import BaseEstimator, TransformerMixin\n",
    "\n",
    "class MyTransformer(BaseEstimator, TransformerMixin):\n",
    "    def __init__(self, first_paramter=1, second_parameter=2):\n",
    "        # all parameters must be specified in the __init__ function\n",
    "        self.first_paramter = 1\n",
    "        self.second_parameter = 2\n",
    "        \n",
    "    def fit(self, X, y=None):\n",
    "        # fit should only take X and y as parameters\n",
    "        # even if your model is unsupervised, you need to accept a y argument!\n",
    "        \n",
    "        # Model fitting code goes here\n",
    "        print(\"fitting the model right here\")\n",
    "        # fit returns self\n",
    "        return self\n",
    "    \n",
    "    def transform(self, X):\n",
    "        # transform takes as parameter only X\n",
    "        \n",
    "        # apply some transformation to X:\n",
    "        X_transformed = X + 1\n",
    "        return X_transformed"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Where to go from here\n",
    "#### Theory\n",
    "#### Other machine learning frameworks and packages\n",
    "#### Ranking, recommender systems, time series, and other kinds of learning\n",
    "#### Probabilistic modeling, inference and probabilistic programming"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Neural Networks"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Scaling to larger datasets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Honing your skills"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Conclusion"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda env:root] *",
   "language": "python",
   "name": "conda-root-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  },
  "toc-autonumbering": false
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
